<?php

class clsServer extends clsLogs{
//atributos
var $sServidor;
var $sLoginServidor;
var $sPassServidor;
var $sBaseDatos;
private static $instance = null;

	//Constructor
	function __construct(){
	
	
	$objConfig = clsConfig::m_singleton();
	
		$this->sServidor =$objConfig -> m_get('sServidor');
		$this->sLoginServidor=$objConfig -> m_get('sLoginServidor');
		$this->sPassServidor=$objConfig -> m_get('sPassServidor');
		$this->sBaseDatos=$objConfig -> m_get('sBaseDatos');
		$this->LogGood=$objConfig -> m_get('LogGood');
	 	$this->DBController=$objConfig -> m_get('DBController');
	
	/*
		$this->sServidor =$_SESSION['MA_sqlserver'];
		$this->sLoginServidor=$_SESSION['MA_sqluser'];
		$this->sPassServidor=$_SESSION['MA_sqlpass'];
		$this->sBaseDatos=$_SESSION['MA_DBEmpresas'];
	*/
	
	}//fin del constructor

	
	
	public function test(){
			return $this->Conexion('',null, true);
	}
	
	
			public function Conexion($pQrySentencia, $datCon, $test=false){
			$pQrySentencia=utf8_decode($pQrySentencia);
			
			switch($datCon['DBController']){
			case 'MySQL':
			
			$conexion=mysql_connect($datCon['sServer'],$datCon['UID'],$datCon['PWD']);
						
						
						if ($test){
						mysql_close($conexion);
						return $conexion;
						}
						
									
							if (!$conexion){
										$error=error_get_last();
										$this->doLog('Consultas.html',"<td class=Error>".$error['message']."</td><td>".$datCon['sServer']."</td>");
							}else{
							
								$baseDatos=mysql_select_db($datCon['Database'],$conexion);
								if (!$baseDatos){
								$this->doLog('Consultas.html',"<td class=Error>No se encuentra la base de datos</td><td>".$datCon['Database']."</td>");
								}else{
								
									$resultado=mysql_query($pQrySentencia);

									if (!$resultado){
										$this->doLog('Consultas.html',"<td >Error</td><td class=Error><textarea>".$pQrySentencia."</textarea></td>");
									}
									
									return	$resultado;
									
								}
							
							}
									
							return false;			
			
			break;
			case 'MSSQL':
			
				 $conexion=mssql_connect($datCon['sServer'],$datCon['UID'],$datCon['PWD']);
						
						if ($test){
						mssql_close($conexion);
						return $conexion;
						}
						
									
							if (!$conexion){
										$error=error_get_last();
										$this->doLog('Consultas.html',"<td class=Error>".$error['message']."</td><td>".$datCon['sServer']."</td>");
							}else{
							
								$baseDatos=mssql_select_db($datCon['Database'],$conexion);
								if (!$baseDatos){
								$this->doLog('Consultas.html',"<td class=Error>No se encuentra la base de datos</td><td>".$datCon['Database']."</td>");
								}else{
								
									$resultado=mssql_query($pQrySentencia);
									
									if (!$resultado){
										$this->doLog('Consultas.html',"<td >Error</td><td class=Error><textarea>".$pQrySentencia."</textarea></td>");
									}
									
									return	$resultado;
							
								}
							
							}
									
							return false;
			break;
			case 'SQLSRV':
							$conexion = sqlsrv_connect( $datCon['sServer'], $datCon);
			
							if (!$conexion){
								$error=error_get_last();
								$this->doLog('Consultas.html',"<td class=Error>".$error['message']."</td><td>".$datCon['sServer']."</td>");
							}else{
								$resultado = sqlsrv_query($conexion,$pQrySentencia);
									if (!$resultado){
										$this->doLog('Consultas.html',"<td >Error</td><td class=Error><textarea>".$pQrySentencia."</textarea></td>");
									}
								return $resultado;
							}
							
							return false;
			
			break;
			}
			
					
			
			}
	
	
	function getCon($sServer='',$sBd='',$sUser='',$sPass='',$DBController=''){
	
	$datCon['sServer']=($sServer=='')?$this->sServidor:($sServer);
	$datCon['Database']=($sServer=='')?$this->sBaseDatos:$sBd;
	$datCon['UID']=($sUser=='')?$this->sLoginServidor:($sUser);
	$datCon['PWD']=($sPass=='')?$this->sPassServidor:($sPass);
	$datCon['DBController']=($DBController=='')?$this->DBController:$DBController;
	
	return $datCon;
	}


	function m_busqueda($pQrySentencia,$sServer='',$sBd='',$sUser='',$sPass='',$DBController=''){

	$datCon=$this->getCon($sServer,$sBd,$sUser,$sPass,$DBController);
	$resultado=$this->Conexion($pQrySentencia,$datCon);
	
	
		if(!$resultado)return;
		if ($this->LogGood)$this->doLog('Consultas.html',"<td>Good</td><td><textarea>".$pQrySentencia."</textarea></td>");
		$arrArregloRespuesta=null;	
		
		switch($datCon['DBController']){
			case 'MySQL':		
			$function="mysql_fetch_array";
			$function2="mysql_close";
			break;
			case 'MSSQL':
			$function="mssql_fetch_array";
			$function2="mssql_close";
			break;
			case 'SQLSRV':
			$function="sqlsrv_fetch_array";
			$function2="sqlsrv_close";
			break;
		}			
			
			While($arrArreglo=$function($resultado)){
				$arrArregloRespuesta[]=$arrArreglo;
			}
		
		
			return $arrArregloRespuesta;
			
			
			//$function2($conexion);					
								
			/*
			While($arrArreglo=$function($resultado)){
				foreach($arrArreglo as $i=>$dat){
						if(is_numeric($i)){
							unset($arrArreglo[$i]);
						}else{
							$arrArreglo[$i]=htmlentities($arrArreglo[$i]);
						}
				}
				$arrArregloRespuesta[]=$arrArreglo;	
			}//fin while
			*/

			
			
			
	}//fin m_busqueda
			

	function m_comando($pQrySentencia,$sServer='',$sBd='',$sUser='',$sPass='',$DBController=''){

	$datCon=$this->getCon($sServer,$sBd,$sUser,$sPass,$DBController);
	
	$resultado=$this->Conexion($pQrySentencia,$datCon);
	
		if(!$resultado)return;
		if ($this->LogGood)$this->doLog('Consultas.html',"<td>Good</td><td><textarea>".$pQrySentencia."</textarea></td>");
		$arrArregloRespuesta=null;
		
		return	$resultado;
				
	}//fin de funcion m_comando
	
				
	public static function m_singleton() 
	{
		if( self::$instance == null ) 
		{self::$instance = new self();}
		return self::$instance;
	}



}//fin de la clase


